from core.basic.skill import 技能
from core.basic.character import Character
from core.basic.skill import 主动技能, 被动技能


class 技能0(被动技能):
    名称 = '臂铠精通'
    所在等级 = 1
    等级上限 = 1
    基础等级 = 1
    关联技能 = ['无']
    冷却关联技能 = ['膝击', '抛投', '野蛮冲撞', '无情摔击', '空绞锤', '霹雳旋踢', '浮空凌云踢',
              '疾波猛坠', '地狱风火轮', '裂石破天', '彗星冲击', '武莲华', '黑震旋风', '疾风闪电', '黑震流·殒灭']

    def CD缩减倍率(self, 武器类型):
        if 武器类型 == '臂铠':
            return 0.9
        else:
            return 1.0


class 技能1(主动技能):
    名称 = '膝击'
    所在等级 = 5
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [20, 168]
    data0 = [int(i*1.1) for i in [0, 250, 275, 301, 326, 352, 376, 401, 426, 451, 478, 503, 528, 553, 579, 604, 629, 655, 681, 706, 731, 756, 781, 807, 833, 858, 883, 909, 934, 959, 984, 1011, 1036, 1061, 1086, 1111,
                                  1137, 1163, 1188, 1213, 1239, 1264, 1289, 1314, 1341, 1366, 1391, 1416, 1441, 1467, 1492, 1518, 1543, 1569, 1594, 1619, 1644, 1669, 1696, 1721, 1746, 1771, 1797, 1822, 1847, 1873, 1899, 1924, 1949, 1974, 1999]]
    hit0 = 2
    data1 = [int(i*1.1) for i in [0, 1063, 1171, 1278, 1386, 1494, 1602, 1710, 1818, 1926, 2034, 2141, 2249, 2357, 2465, 2573, 2681, 2789, 2896, 3004, 3112, 3220, 3328, 3436, 3544, 3652, 3759, 3867, 3975, 4083, 4191, 4299, 4407, 4514,
                                  4622, 4730, 4838, 4946, 5054, 5162, 5270, 5377, 5485, 5593, 5701, 5809, 5917, 6025, 6132, 6240, 6348, 6456, 6564, 6672, 6780, 6887, 6995, 7103, 7211, 7319, 7427, 7535, 7643, 7750, 7858, 7966, 8074, 8182, 8290, 8398, 8505]]
    hit1 = 1
    CD = 5.0
    TP成长 = 0.10
    TP上限 = 7


class 技能2(被动技能):
    名称 = '摔技强化'
    所在等级 = 15
    等级上限 = 20
    学习间隔 = 3
    等级精通 = 10

    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.0 + 0.02 * self.等级, 5)


class 技能3(主动技能):
    名称 = '抛投'
    所在等级 = 15
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [20, 168]
    data0 = [int(i*1.1) for i in [0, 1153, 1272, 1388, 1506, 1622, 1740, 1856, 1973, 2091, 2207, 2325, 2441, 2560, 2676, 2794, 2910, 3027, 3144, 3262, 3379, 3496, 3613, 3730, 3847, 3965, 4081, 4199, 4315, 4433, 4549, 4668, 4784, 4902,
                                  5018, 5135, 5252, 5370, 5487, 5604, 5721, 5838, 5956, 6073, 6189, 6307, 6423, 6541, 6658, 6776, 6892, 7010, 7126, 7243, 7361, 7478, 7595, 7712, 7829, 7947, 8064, 8181, 8297, 8415, 8531, 8650, 8766, 8884, 9000, 9118, 9234]]
    hit0 = 1
    data1 = [int(i*1.1) for i in [0, 1820, 2003, 2188, 2373, 2558, 2742, 2927, 3112, 3297, 3480, 3666, 3850, 4036, 4218, 4404, 4588, 4774, 4957, 5143, 5327, 5513, 5696, 5882, 6066, 6252, 6435, 6621, 6805, 6990, 7174, 7360, 7544, 7728, 7913, 8098,
                                  8281, 8467, 8651, 8837, 9020, 9205, 9390, 9575, 9758, 9944, 10128, 10312, 10497, 10682, 10867, 11051, 11236, 11421, 11606, 11790, 11975, 12159, 12345, 12527, 12714, 12897, 13083, 13266, 13452, 13636, 13822, 14005, 14191, 14375, 14561]]
    hit1 = 1
    CD = 7.0
    TP成长 = 0.10
    TP上限 = 7


class 技能4(被动技能):
    名称 = '连环抓取'
    所在等级 = 20
    等级上限 = 11
    学习间隔 = 5
    等级精通 = 1

    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            # 默认高阶
            return round(1.36 + 0.02 * self.等级, 5)


class 技能5(主动技能):
    名称 = '野蛮冲撞'
    所在等级 = 25
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [50, 420]
    data0 = [int(i*1.093) for i in [0, 2911, 3207, 3501, 3796, 4093, 4388, 4684, 4978, 5274, 5569, 5864, 6161, 6455, 6751, 7046, 7342, 7637, 7931, 8228, 8523, 8819, 9114, 9409, 9704, 10000, 10296, 10592, 10886, 11181, 11477, 11772, 12068, 12362, 12658, 12954,
                                    13249, 13545, 13839, 14135, 14431, 14727, 15022, 15316, 15612, 15907, 16203, 16499, 16794, 17089, 17384, 17680, 17975, 18270, 18565, 18862, 19157, 19453, 19747, 20042, 20338, 20633, 20930, 21224, 21520, 21815, 22111, 22406, 22700, 22997, 23292]]
    hit0 = 1
    data1 = [int(i*1.093) for i in [0, 1746, 1923, 2101, 2279, 2455, 2633, 2810, 2987, 3164, 3342, 3519, 3696, 3872, 4050, 4227, 4404, 4582, 4760, 4937, 5114, 5290, 5468, 5645, 5822, 5999, 6177, 6354, 6531, 6710, 6886, 7063, 7240, 7418, 7595,
                                    7772, 7949, 8127, 8304, 8480, 8657, 8835, 9013, 9190, 9368, 9545, 9722, 9898, 10076, 10253, 10430, 10607, 10784, 10962, 11140, 11317, 11494, 11671, 11848, 12025, 12203, 12380, 12557, 12734, 12912, 13088, 13265, 13444, 13621, 13798, 13975]]
    hit1 = 1
    CD = 8.0
    TP成长 = 0.10
    TP上限 = 7


class 技能6(主动技能):
    名称 = '无情摔击'
    所在等级 = 25
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [50, 420]
    data0 = [int(i*1.093) for i in [0, 4414, 4861, 5310, 5757, 6206, 6653, 7100, 7549, 7996, 8446, 8893, 9340, 9789, 10236, 10684, 11132, 11579, 12028, 12475, 12922, 13372, 13819, 14267, 14715, 15162, 15611, 16058, 16506, 16954, 17401, 17849, 18297, 18746, 19194,
                                    19641, 20089, 20537, 20984, 21432, 21880, 22328, 22776, 23223, 23671, 24120, 24568, 25015, 25463, 25911, 26359, 26807, 27254, 27702, 28150, 28597, 29047, 29494, 29942, 30390, 30837, 31285, 31733, 32180, 32629, 33076, 33524, 33972, 34419, 34869, 35316]]
    hit0 = 1
    CD = 8.0
    TP成长 = 0.10
    TP上限 = 7


class 技能7(主动技能):
    名称 = '空绞锤'
    所在等级 = 30
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [50, 420]
    data0 = [int(i*1.086) for i in [0, 4054, 4464, 4876, 5286, 5697, 6109, 6520, 6931, 7342, 7752, 8165, 8575, 8987, 9398, 9809, 10221, 10632, 11043, 11453, 11866, 12276, 12688, 13098, 13510, 13921, 14333, 14744, 15154, 15566, 15977, 16389, 16799, 17211, 17621,
                                    18034, 18444, 18855, 19267, 19678, 20090, 20500, 20912, 21322, 21735, 22145, 22557, 22967, 23378, 23790, 24201, 24613, 25023, 25436, 25846, 26258, 26668, 27079, 27491, 27902, 28313, 28724, 29134, 29547, 29959, 30369, 30780, 31192, 31603, 32014, 32425]]
    hit0 = 1
    CD = 7.0
    TP成长 = 0.10
    TP上限 = 7


class 技能8(主动技能):
    名称 = '霹雳旋踢'
    所在等级 = 30
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60
    MP = [50, 420]
    data0 = [int(i*1.085) for i in [0, 5787, 6375, 6961, 7549, 8136, 8724, 9311, 9897, 10487, 11072, 11660, 12246, 12833, 13423, 14008, 14597, 15182, 15770, 16357, 16944, 17533, 18118, 18706, 19293, 19880, 20469, 21056, 21642, 22229, 22816, 23402, 23992, 24579,
                                    25165, 25752, 26341, 26928, 27513, 28102, 28688, 29277, 29864, 30449, 31038, 31624, 32213, 32800, 33385, 33974, 34561, 35149, 35736, 36321, 36911, 37497, 38085, 38670, 39259, 39847, 40433, 41021, 41606, 42195, 42782, 43369, 43957, 44544, 45132, 45718, 46305]]
    hit0 = 1
    CD = 12.0
    TP成长 = 0.10
    TP上限 = 7


class 技能9(主动技能):
    名称 = '浮空凌云踢'
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60

    data0 = [int(i*1.089*1.053) for i in [0, 2008, 2212, 2416, 2620, 2823, 3027, 3231, 3435, 3639, 3843, 4046, 4250, 4454, 4658, 4862, 5066, 5270, 5473, 5677, 5881, 6085, 6289, 6493, 6694, 6898, 7102, 7306, 7511, 7715, 7917, 8121, 8325, 8529, 8733, 8937,
                                    9141, 9344, 9548, 9752, 9956, 10160, 10364, 10567, 10771, 10975, 11179, 11383, 11587, 11791, 11994, 12198, 12402, 12606, 12810, 13013, 13216, 13420, 13624, 13828, 14032, 14236, 14440, 14643, 14847, 15051, 15255, 15459, 15663, 15866, 16070]]
    hit0 = 1
    data1 = [int(i*1.089*1.053) for i in [0, 3615, 3982, 4349, 4715, 5083, 5450, 5817, 6183, 6550, 6916, 7284, 7650, 8017, 8384, 8751, 9117, 9485, 9852, 10219, 10585, 10952, 11320, 11685, 12052, 12419, 12786, 13152, 13520, 13887, 14254, 14620, 14987, 15354, 15722,
                                    16087, 16454, 16821, 17187, 17554, 17922, 18289, 18655, 19022, 19389, 19757, 20123, 20490, 20856, 21223, 21589, 21956, 22324, 22691, 23057, 23424, 23791, 24159, 24525, 24892, 25259, 25624, 25991, 26358, 26726, 27092, 27459, 27826, 28193, 28560, 28927]]
    hit1 = 1
    data2 = [int(i*1.089*1.053) for i in [0, 2410, 2655, 2900, 3143, 3388, 3633, 3878, 4122, 4366, 4611, 4855, 5100, 5345, 5589, 5834, 6077, 6322, 6568, 6812, 7057, 7302, 7545, 7790, 8034, 8280, 8524, 8768, 9013, 9257, 9502, 9747, 9991, 10236, 10481, 10724,
                                    10969, 11213, 11459, 11704, 11947, 12192, 12436, 12681, 12927, 13170, 13415, 13660, 13904, 14148, 14393, 14638, 14883, 15126, 15371, 15615, 15861, 16106, 16349, 16594, 16839, 17083, 17329, 17572, 17817, 18062, 18306, 18550, 18794, 19040, 19285]]
    hit2 = 1
    CD = 15.0
    TP成长 = 0.10
    TP上限 = 5

    MP = [105, 882]
    无色消耗 = 1


class 技能10(主动技能):
    名称 = '疾波猛坠'
    所在等级 = 35
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60

    data0 = [int(i*1.084*1.052) for i in [0, 3407, 3752, 4098, 4443, 4790, 5136, 5481, 5827, 6172, 6517, 6863, 7209, 7555, 7901, 8247, 8591, 8937, 9283, 9628, 9974, 10320, 10666, 11012, 11357, 11704, 12048, 12393, 12740, 13085,
                                    13431, 13776, 14123, 14469, 14814, 15159, 15504, 15850, 16197, 16542, 16888, 17233, 17580, 17925, 18269, 18616, 18961, 19307, 19653, 19999, 20345, 20690, 21036, 21382, 21726, 22073, 22418, 22764, 23110, 23456, 23801]]
    hit0 = 1
    data1 = [int(i*1.084*1.052) for i in [0, 429, 474, 517, 561, 603, 648, 691, 735, 778, 822, 865, 908, 954, 996, 1038, 1085, 1128, 1170, 1215, 1257, 1302, 1345, 1388, 1432, 1476, 1519, 1562, 1605, 1650,
                                    1693, 1737, 1782, 1824, 1869, 1912, 1955, 1999, 2042, 2086, 2130, 2172, 2216, 2259, 2304, 2348, 2391, 2436, 2478, 2522, 2566, 2609, 2653, 2696, 2738, 2784, 2826, 2870, 2915, 2958, 3002]]
    hit1 = 6
    CD = 15.0
    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1

    MP = [124, 1041]
    无色消耗 = 1

    形态 = ["地面", "空中"]

    def 形态变更(self, 形态, char: Character):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "地面":
            self.hit0 = 1
            self.hit1 = 6
            if '疾波猛坠' in char.护石栏:
                self.hit0 = 0
                self.hit1 = 7
                self.power1 = 2.36
            else:
                形态 = "空中"
        if 形态 == "空中":
            self.hit0 = 1
            self.hit1 = 6
            if '疾波猛坠' in char.护石栏:
                self.power0 = 1.39
                self.power1 = 1.39

    def 装备护石(self):
        pass


class 技能11(主动技能):
    名称 = '地狱风火轮'
    所在等级 = 40
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60

    data0 = [int(i*1.072*1.051) for i in [0, 2721, 2997, 3273, 3549, 3826, 4101, 4378, 4652, 4930, 5205, 5481, 5757, 6034, 6309, 6586, 6862, 7138, 7414, 7690, 7966, 8243, 8518, 8795, 9071, 9347, 9623, 9900, 10175, 10452, 10726, 11004, 11279, 11554, 11831, 12106,
                                    12383, 12659, 12935, 13211, 13488, 13763, 14040, 14315, 14592, 14868, 15144, 15420, 15697, 15971, 16249, 16523, 16800, 17076, 17352, 17628, 17905, 18180, 18457, 18733, 19009, 19285, 19561, 19837, 20114, 20389, 20666, 20942, 21218, 21494, 21771]]
    hit0 = 1
    power0 = 1
    data1 = [int(i*1.072*1.051) for i in [0, 1608, 1771, 1933, 2097, 2260, 2423, 2586, 2749, 2913, 3076, 3239, 3401, 3564, 3729, 3892, 4055, 4217, 4380, 4544, 4708, 4871, 5033, 5196, 5360, 5523, 5685, 5849, 6012, 6176, 6339, 6501, 6664, 6827, 6992,
                                    7154, 7317, 7480, 7643, 7807, 7970, 8133, 8296, 8459, 8622, 8785, 8948, 9112, 9275, 9438, 9601, 9764, 9927, 10089, 10254, 10417, 10580, 10743, 10905, 11070, 11233, 11396, 11559, 11721, 11885, 12048, 12212, 12374, 12537, 12701, 12864]]
    hit1 = 1
    power1 = 1
    data2 = [int(i*1.072*1.051) for i in [0, 4328, 4769, 5207, 5646, 6086, 6525, 6964, 7403, 7842, 8281, 8721, 9161, 9599, 10038, 10478, 10917, 11356, 11795, 12234, 12673, 13113, 13553, 13991, 14431, 14870, 15308, 15748, 16187, 16628, 17066, 17505, 17945, 18383, 18823,
                                    19262, 19700, 20140, 20579, 21020, 21458, 21897, 22337, 22775, 23215, 23654, 24092, 24532, 24972, 25410, 25850, 26290, 26729, 27167, 27607, 28046, 28485, 28924, 29364, 29803, 30242, 30682, 31121, 31559, 31999, 32438, 32877, 33316, 33757, 34195, 34634]]
    hit2 = 1
    power2 = 1
    data3 = [int(i*1.072*1.051) for i in [0, 3711, 4086, 4464, 4840, 5216, 5593, 5970, 6345, 6722, 7099, 7475, 7851, 8229, 8604, 8981, 9358, 9734, 10110, 10488, 10863, 11240, 11617, 11993, 12369, 12744, 13122, 13498, 13874, 14251, 14628, 15003, 15381, 15757, 16133,
                                    16510, 16887, 17262, 17639, 18016, 18392, 18768, 19146, 19521, 19898, 20275, 20651, 21027, 21405, 21780, 22157, 22534, 22910, 23286, 23663, 24039, 24416, 24792, 25169, 25545, 25922, 26298, 26675, 27051, 27428, 27804, 28181, 28557, 28934, 29310, 29686]]
    hit3 = 1
    power3 = 1
    CD = 25.0
    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1

    MP = [188, 1579]
    无色消耗 = 1

    def 装备护石(self):
        self.power2 *= 1.52
        self.power3 *= 1.52


class 技能12(主动技能):
    名称 = '裂石破天'
    所在等级 = 45
    等级上限 = 70
    学习间隔 = 2
    等级精通 = 60

    data0 = [int(i*1.10) for i in [0, 9869, 10871, 11871, 12874, 13874, 14875, 15878, 16878, 17880, 18880, 19883, 20884, 21884, 22887, 23887, 24889, 25889, 26892, 27893, 28894, 29896, 30896, 31898, 32898, 33901, 34902, 35903, 36905, 37906, 38907, 39907, 40910, 41911,
                                   42912, 43914, 44915, 45916, 46916, 47919, 48920, 49921, 50923, 51924, 52925, 53927, 54928, 55930, 56930, 57932, 58933, 59934, 60936, 61937, 62939, 63939, 64941, 65942, 66943, 67945, 68946, 69948, 70948, 71950, 72951, 73953, 74954, 75955, 76957, 77957, 78959]]
    hit0 = 0
    data1 = [int(i*1.10*1.176) for i in [0, 5868, 6464, 7059, 7655, 8249, 8846, 9441, 10035, 10631, 11228, 11823, 12417, 13012, 13609, 14205, 14799, 15394, 15991, 16585, 17181, 17777, 18373, 18967, 19563, 20158, 20755, 21350, 21944, 22539, 23135, 23731, 24326, 24920,
                                   25517, 26113, 26708, 27302, 27899, 28494, 29089, 29685, 30281, 30875, 31470, 32066, 32663, 33259, 33852, 34448, 35044, 35639, 36235, 36829, 37425, 38021, 38616, 39210, 39806, 40402, 40998, 41592, 42189, 42784, 43378, 43974, 44571, 45166, 45760, 46356, 46952]]
    hit1 = 1
    data2 = [int(i*1.10) for i in [0, 13621, 15001, 16384, 17766, 19148, 20529, 21910, 23293, 24675, 26057, 27439, 28821, 30202, 31584, 32966, 34348, 35730, 37112, 38493, 39875, 41257, 42639, 44022, 45402, 46784, 48166, 49549, 50930, 52311, 53693, 55076, 56457, 57839,
                                   59221, 60603, 61984, 63366, 64748, 66131, 67513, 68893, 70275, 71658, 73040, 74420, 75802, 77185, 78567, 79948, 81331, 82712, 84094, 85476, 86858, 88240, 89622, 91003, 92384, 93767, 95149, 96531, 97911, 99294, 100676, 102058, 103440, 104821, 106203, 107585, 108968]]
    hit2 = 1
    CD = 40.0
    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1

    MP = [320, 2688]
    无色消耗 = 2

    形态 = ["非抓", "抓取"]

    def 形态变更(self, 形态, char: Character):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "非抓":
            self.hit0 = 0
            self.hit1 = 1
            self.hit2 = 1
        if 形态 == "抓取":
            self.hit0 = 1
            self.hit1 = 1
            self.hit2 = 0

    def 装备护石(self):
        self.倍率 *= 1.28


class 技能13(被动技能):
    名称 = '力之奥义'
    所在等级 = 48
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.025 + 0.02 * self.等级, 5)


class 技能14(主动技能):
    名称 = '死亡旋律'
    所在等级 = 50
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40

    data0 = [int(i*1.065*1.056) for i in [0, 46096, 56790, 67475, 78168, 88860, 99549, 110239, 120928, 155605, 168243, 180880, 193515, 206158, 218794, 231435, 244070, 256711, 269347, 281984, 294621, 307261, 319899, 332537, 345176, 357815, 370452, 383090, 395727, 408363, 421005, 433641, 446281, 458916,
                                    471555, 484193, 496831, 509469, 522109, 534742, 547384, 560019, 572660, 585297, 597935, 610573, 623212, 635849, 648487, 661127, 673764, 686402, 699039, 711678, 724313, 736955, 749591, 762232, 774869, 787504, 800142, 812781, 825419, 838059, 850695, 863335, 875969, 888611, 901247, 913886, 926523]]
    hit0 = 1
    data1 = [int(i*1.065*1.056) for i in [0, 2390, 2946, 3501, 4055, 4609, 5165, 5718, 6273, 6829, 7382, 7938, 8491, 9046, 9601, 10156, 10710, 11264, 11821, 12374, 12928, 13483, 14037, 14592, 15148, 15702, 16257, 16811, 17364, 17920, 18475, 19029, 19584, 20140, 20693,
                                    21248, 21803, 22356, 22912, 23467, 24021, 24576, 25130, 25684, 26239, 26793, 27349, 27903, 28457, 29013, 29566, 30120, 30676, 31231, 31784, 32341, 32893, 33449, 34004, 34556, 35112, 35668, 36221, 36776, 37333, 37884, 38439, 38996, 39548, 40104, 40659]]
    hit1 = 0
    data2 = [int(i*1.065*1.056) for i in [0, 11160, 13748, 16337, 18925, 21513, 24103, 26689, 29279, 31866, 34455, 37043, 39630, 42218, 44806, 47396, 49982, 52573, 55158, 57747, 60336, 62922, 65510, 68100, 70687, 73277, 75865, 78453, 81041, 83629, 86217, 88804, 91394, 93981, 96570, 99158,
                                    101745, 104334, 106922, 109509, 112099, 114688, 117274, 119862, 122451, 125038, 127625, 130215, 132803, 135393, 137981, 140568, 143156, 145746, 148333, 150921, 153509, 156097, 158686, 161273, 163860, 166449, 169038, 171623, 174214, 176801, 179390, 181977, 184567, 187155, 189745]]
    hit2 = 0
    data3 = [int(i*1.065*1.056) for i in [0, 31192, 38425, 45660, 52893, 60125, 67360, 74596, 81825, 89060, 96293, 103529, 110757, 117993, 125226, 132461, 139694, 146924, 154160, 161392, 168625, 175861, 183094, 190325, 197558, 204794, 212025, 219261, 226493, 233725, 240961, 248193, 255426, 262660, 269893,
                                    277126, 284360, 291594, 298826, 306060, 313294, 320526, 327761, 334994, 342226, 349459, 356694, 363929, 371161, 378394, 385626, 392861, 400094, 407327, 414562, 421794, 429027, 436261, 443495, 450727, 457961, 465194, 472427, 479662, 486895, 494125, 501362, 508595, 515830, 523058, 530296]]
    hit3 = 0
    CD = 145.0

    MP = [900, 7560]
    无色消耗 = 5

    形态 = ["空中", "地面"]

    def 形态变更(self, 形态, char):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "空中":
            self.hit0 = 1
            self.hit1 = 0
            self.hit2 = 0
            self.hit3 = 0
        if 形态 == "地面":
            self.hit0 = 0
            self.hit1 = 7
            self.hit2 = 1
            self.hit3 = 1

    def 等效百分比(self, **argv):
        if self.等级 >= 6:
            self.power0 = 1.05
            self.power3 = 1.1
        return super().等效百分比(**argv)


class 技能15(主动技能):
    名称 = '彗星冲击'
    所在等级 = 60
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40

    data0 = [int(i*1.087*1.05) for i in [0, 15637, 17223, 18810, 20396, 21983, 23568, 25156, 26742, 28328, 29915, 31502, 33087, 34674, 36261, 37846, 39433, 41020, 42606, 44192, 45779, 47365, 48952, 50537, 52124, 53711, 55296, 56883, 58471, 60056, 61642, 63229, 64815, 66402, 67988,
                                    69575, 71161, 72748, 74333, 75921, 77507, 79092, 80680, 82267, 83852, 85438, 87026, 88611, 90198, 91784, 93371, 94957, 96544, 98130, 99717, 101303, 102888, 104476, 106063, 107648, 109235, 110822, 112407, 113994, 115581, 117167, 118753, 120341, 121926, 123513, 125099]]
    hit0 = 1
    CD = 25.0
    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1

    MP = [280, 784]
    无色消耗 = 1

    def 装备护石(self):
        self.CDR *= 0.88
        self.倍率 *= 1.09


class 技能16(主动技能):
    名称 = '武莲华'
    所在等级 = 70
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40

    data0 = [int(i*1.05*1.05) for i in [0, 6217, 6846, 7479, 8108, 8738, 9371, 10000, 10632, 11264, 11895, 12523, 13155, 13785, 14415, 15049, 15677, 16306, 16938, 17570, 18202, 18832, 19464, 20094, 20726, 21355, 21985, 22615, 23246, 23877, 24510, 25142, 25770, 26402,
                                   27030, 27662, 28295, 28924, 29553, 30185, 30815, 31448, 32078, 32709, 33341, 33970, 34601, 35232, 35863, 36493, 37123, 37755, 38383, 39016, 39647, 40280, 40909, 41538, 42172, 42799, 43429, 44062, 44692, 45322, 45953, 46587, 47219, 47847, 48478, 49109, 49740]]
    hit0 = 2
    data1 = [int(i*1.05*1.05) for i in [0, 1552, 1703, 1863, 2021, 2178, 2336, 2496, 2648, 2809, 2963, 3122, 3281, 3434, 3591, 3751, 3908, 4062, 4221, 4377, 4535, 4693, 4849, 5007, 5166, 5323, 5477, 5634, 5792, 5951, 6105, 6265, 6422, 6578, 6737,
                                   6895, 7048, 7207, 7367, 7522, 7680, 7841, 7993, 8148, 8310, 8465, 8621, 8780, 8937, 9096, 9252, 9408, 9565, 9723, 9880, 10038, 10196, 10352, 10509, 10664, 10823, 10979, 11138, 11297, 11452, 11606, 11766, 11924, 12079, 12239, 12394]]
    hit1 = 12
    data2 = [int(i*1.05*1.05) for i in [0, 9321, 10268, 11213, 12162, 13107, 14052, 14997, 15944, 16890, 17834, 18779, 19726, 20671, 21618, 22563, 23512, 24458, 25402, 26350, 27295, 28244, 29189, 30135, 31078, 32026, 32971, 33917, 34862, 35808, 36753, 37700, 38644, 39593,
                                   40538, 41485, 42429, 43375, 44321, 45266, 46211, 47158, 48102, 49049, 49995, 50940, 51888, 52830, 53778, 54724, 55669, 56615, 57561, 58511, 59456, 60403, 61347, 62293, 63239, 64184, 65130, 66077, 67020, 67967, 68913, 69861, 70806, 71748, 72696, 73642, 74590]]
    hit2 = 1
    CD = 45.0
    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1

    MP = [756, 1587]
    无色消耗 = 2

    def 装备护石(self):
        self.hit0 = 4
        self.power0 *= 1.5
        self.hit1 = 0
        self.倍率 *= 1.07
        self.CDR *= 0.9


class 技能17(主动技能):
    名称 = '黑震旋风'
    所在等级 = 75
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40

    data0 = [int(i*1.085*1.054) for i in [0, 8280, 9119, 9960, 10800, 11639, 12480, 13319, 14160, 15000, 15839, 16680, 17519, 18360, 19200, 20040, 20880, 21720, 22560,
                                    23400, 24240, 25081, 25920, 26760, 27600, 28440, 29281, 30120, 30960, 31800, 32640, 33481, 34321, 35162, 36000, 36840, 37681, 38521, 39362, 40200, 41040]]
    hit0 = 1
    data1 = [int(i*1.085*1.054) for i in [0, 3214, 3540, 3867, 4192, 4518, 4845, 5171, 5497, 5823, 6150, 6475, 6802, 7127, 7454, 7779, 8106, 8433, 8758, 9085,
                                    9410, 9737, 10062, 10389, 10714, 11041, 11368, 11693, 12020, 12346, 12672, 12997, 13324, 13650, 13976, 14302, 14629, 14955, 15280, 15608, 15933]]
    hit1 = 5
    data2 = [int(i*1.085*1.054) for i in [0, 21701, 23901, 26104, 28305, 30507, 32708, 34911, 37111, 39314, 41515, 43717, 45918, 48121, 50321, 52523, 54725, 56929, 59128,
                                    61331, 63533, 65733, 67936, 70138, 72339, 74541, 76743, 78944, 81146, 83348, 85548, 87750, 89952, 92153, 94355, 96557, 98758, 100960, 103162, 105362, 107565]]
    hit2 = 1
    CD = 40.0
    是否有护石 = 1

    MP = [580, 4500]
    无色消耗 = 3

    def 装备护石(self):
        self.倍率 *= 1.33


class 技能18(被动技能):
    名称 = '傲天之怒'
    所在等级 = 75
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.22 + 0.02 * self.等级, 5)


class 技能19(主动技能):
    名称 = '疾风闪电'
    所在等级 = 80
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40

    data0 = [int(i*1.072*1.053) for i in [0, 29960, 32999, 36042, 39080, 42116, 45158, 48196, 51235, 54277, 57315, 60355, 63394, 66433, 69475, 72514, 75554, 78591, 81631, 84670,
                                    87709, 90750, 93791, 96828, 99870, 102909, 105949, 108986, 112028, 115068, 118104, 121144, 124186, 127223, 130263, 133304, 136343, 139381, 142420, 145463, 148502]]
    hit0 = 1
    data1 = [int(i*1.072*1.053) for i in [0, 23665, 26064, 28464, 30866, 33266, 35668, 38065, 40467, 42867, 45269, 47671, 50069, 52473, 54873, 57277, 59673, 62078, 64477,
                                    66877, 69276, 71679, 74075, 76479, 78878, 81283, 83680, 86082, 88484, 90883, 93283, 95686, 98086, 100485, 102887, 105289, 107690, 110091, 112491, 114890, 117293]]
    hit1 = 1
    data2 = [int(i*1.072*1.053) for i in [0, 15727, 17325, 18922, 20516, 22114, 23707, 25302, 26899, 28498, 30088, 31685, 33281, 34877, 36474, 38069, 39668, 41259, 42855,
                                    44454, 46050, 47646, 49243, 50838, 52429, 54026, 55624, 57220, 58815, 60412, 62006, 63601, 65198, 66795, 68389, 69984, 71577, 73176, 74773, 76369, 77964]]
    hit2 = 0
    data3 = [int(i*1.072*1.053) for i in [0, 10485, 11549, 12614, 13679, 14743, 15806, 16871, 17933, 18996, 20059, 21125, 22190, 23250, 24315, 25377, 26443, 27508, 28571,
                                    29632, 30698, 31761, 32827, 33890, 34955, 36019, 37083, 38148, 39209, 40274, 41336, 42402, 43463, 44527, 45593, 46657, 47722, 48782, 49847, 50911, 51976]]
    hit3 = 0
    data4 = [int(i*1.072*1.053) for i in [0, 26218, 28878, 31536, 34195, 36854, 39517, 42172, 44831, 47492, 50149, 52810, 55471, 58132, 60789, 63450, 66109, 68767, 71427, 74088,
                                    76745, 79405, 82067, 84727, 87385, 90045, 92705, 95363, 98021, 100683, 103342, 106001, 108659, 111320, 113981, 116642, 119302, 121962, 124620, 127282, 129939]]
    hit4 = 0
    CD = 45.0
    是否有护石 = 1

    MP = [800, 6000]
    无色消耗 = 5

    形态 = ["非抓", "抓取"]

    def 形态变更(self, 形态, char: Character):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "非抓":
            self.hit0 = 1
            self.hit1 = 1
            self.hit2 = 0
            self.hit3 = 0
            self.hit4 = 0
        if 形态 == "抓取":
            self.hit0 = 0
            self.hit1 = 0
            self.hit2 = 1
            self.hit3 = 1
            self.hit4 = 1

    def 装备护石(self):
        self.倍率 *= 1.35


class 技能20(主动技能):
    名称 = '一字传承：极义震天破'
    所在等级 = 85
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40

    data0 = [int(i*1.065*1.056) for i in [0, 34213, 42147, 50078, 58015, 65945, 73881, 81814, 89748, 97683, 105616, 113549, 121482, 129416, 137349, 145284, 153215, 161149, 169084, 177016,
                                    184951, 192885, 200817, 208751, 216685, 224618, 232552, 240487, 248418, 256353, 264286, 272220, 280152, 288087, 296019, 303954, 311890, 319821, 327757, 335688, 343622]]
    hit0 = 1
    data1 = [int(i*1.065*1.056) for i in [0, 2631, 3239, 3852, 4460, 5072, 5683, 6293, 6905, 7513, 8126, 8734, 9345, 9955, 10565, 11177, 11784, 12395, 13006, 13617,
                                    14228, 14836, 15447, 16056, 16667, 17278, 17888, 18497, 19108, 19720, 20327, 20941, 21549, 22162, 22771, 23381, 23993, 24601, 25211, 25821, 26433]]
    hit1 = 13
    data2 = [int(i*1.065*1.056) for i in [0, 63344, 78033, 92724, 107413, 122102, 136789, 151479, 166164, 180853, 195544, 210231, 224919, 239608, 254300, 268987, 283678, 298368, 313055,
                                    327745, 342430, 357122, 371811, 386500, 401191, 415877, 430566, 445253, 459945, 474633, 489320, 504013, 518699, 533387, 548075, 562767, 577455, 592142, 606831, 621517, 636209]]
    hit2 = 1
    CD = 185.0

    MP = [2500, 5000]
    无色消耗 = 10


class 技能21(主动技能):
    名称 = '黑震流·殒灭'
    所在等级 = 95
    等级上限 = 50
    学习间隔 = 2
    等级精通 = 40

    data0 = [int(i*1.068*1.05) for i in [0, 5030, 5540, 6051, 6561, 7071, 7582, 8092, 8603, 9113, 9624, 10134, 10644, 11155, 11665, 12176, 12685, 13197, 13706, 14216, 14727, 15237, 15748, 16258, 16769, 17279, 17789, 18300, 18810, 19321, 19831, 20342, 20852, 21360, 21873, 22381, 22892, 23402, 23913, 24423, 24933]]
    hit0 = 1
    data1 = [int(i*1.068*1.05) for i in [0, 7965, 8772, 9581, 10389, 11197, 12004, 12814, 13621, 14429, 15237, 16046, 16853, 17662, 18469, 19278, 20086, 20894, 21701, 22510, 23318, 24126, 24933, 25743, 26550, 27358, 28166, 28975, 29782, 30590, 31399, 32207, 33014, 33823, 34631, 35439, 36247, 37055, 37863, 38672, 39479]]
    hit1 = 10
    data2 = [int(i*1.068*1.05) for i in [0, 15929, 17544, 19160, 20779, 22393, 24009, 25628, 27243, 28858, 30473, 32092, 33708, 35322, 36938, 38557, 40171, 41787, 43402, 45021, 46635, 48251, 49867, 51485, 53100, 54715, 56331, 57950, 59564, 61180, 62799, 64414, 66029, 67644, 69263, 70879, 72493, 74109, 75728, 77343, 78958]]
    hit2 = 1
    CD = 60.0

    MP = [960, 7200]
    无色消耗 = 7

    形态 = ["空中", "突进"]

    def 形态变更(self, 形态, char: Character):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "空中":
            self.hit0 = 1
            self.hit1 = 10
            self.hit2 = 1
        if 形态 == "突进":
            self.hit0 = 1
            self.hit1 = 12
            self.hit2 = 0


class 技能22(被动技能):
    名称 = '神怡气静'
    所在等级 = 95
    等级上限 = 50
    学习间隔 = 3
    等级精通 = 40

    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.18 + 0.02 * self.等级, 5)


class 技能23(主动技能):
    名称 = '黑震流·山岳崩颓'
    所在等级 = 100
    等级上限 = 50
    学习间隔 = 5
    等级精通 = 40

    data0 = [int(i*1.065*1.053) for i in [0, 17565, 21637, 25710, 29783, 33856, 37929, 42003, 46076, 50149, 54222, 58296, 62369, 66442, 70515, 74588, 78661, 82735, 86808, 90881,
                                    94954, 99027, 103100, 107173, 111245, 115318, 119391, 123464, 127537, 131611, 135684, 139758, 143831, 147904, 151977, 156050, 160123, 164196, 168269, 172342, 176416]]
    hit0 = 1
    data1 = [int(i*1.065*1.053) for i in [0, 35130, 43276, 51422, 59569, 67715, 75861, 84007, 92152, 100298, 108445, 116592, 124738, 132884, 141030, 149177, 157323, 165469, 173615, 181760,
                                    189906, 198054, 206200, 214346, 222492, 230638, 238785, 246931, 255077, 263223, 271368, 279517, 287662, 295808, 303954, 312100, 320246, 328393, 336539, 344685, 352831]]
    hit1 = 1
    data2 = [int(i*1.065*1.053) for i in [0, 52695, 64914, 77133, 89353, 101572, 113792, 126011, 138230, 150449, 162668, 174889, 187107, 199326, 211546, 223765, 235984, 248204, 260424,
                                    272642, 284861, 297081, 309300, 321519, 333739, 345959, 358177, 370396, 382615, 394835, 407054, 419274, 431494, 443713, 455931, 468150, 480370, 492589, 504809, 517029, 529248]]
    hit2 = 2
    data3 = [int(i*1.065*1.053) for i in [0, 70260, 86553, 102845, 119137, 135430, 151723, 168014, 184307, 200599, 216892, 233185, 249476, 265769, 282061, 298353, 314647, 330939, 347230,
                                    363523, 379815, 396109, 412401, 428692, 444985, 461277, 477570, 493863, 510155, 526446, 542739, 559032, 575325, 591617, 607908, 624201, 640494, 656786, 673079, 689371, 705662]]
    hit3 = 1
    data4 = [int(i*1.065*1.053) for i in [0, 122955, 151468, 179980, 208490, 237003, 265515, 294025, 322538, 351050, 379560, 408073, 436584, 465095, 493608, 522119, 550630, 579143, 607654, 636166,
                                    664678, 693189, 721701, 750212, 778724, 807237, 835747, 864259, 892772, 921283, 949794, 978307, 1006818, 1035329, 1063841, 1092353, 1120864, 1149376, 1177888, 1206398, 1234911]]
    hit4 = 1
    CD = 290

    MP = [4025, 8055]
    无色消耗 = 15

    形态 = ["非抓", "抓取"]

    def 形态变更(self, 形态, char: Character):
        if 形态 == '' and len(self.形态) > 0:
            形态 = self.形态[0]
        if 形态 == "非抓":
            self.hit0 = 1
            self.hit1 = 1
            self.hit2 = 2
            self.hit3 = 1
            self.hit4 = 1
        if 形态 == "抓取":
            self.hit0 = 2
            self.hit1 = 2
            self.hit2 = 1
            self.hit3 = 1
            self.hit4 = 1


class classChange(Character):
    def __init__(self):
        self.实际名称 = 'grappler_male'
        self.名称 = '归元·柔道家'
        self.角色 = '格斗家(男)'
        self.角色类型 = '输出'
        self.职业 = '柔道家'
        # 用来筛CP武器的
        self.转职 = '柔道家(男)'
        self.武器选项 = ['臂铠', '手套', '东方棍', '爪']
        self.输出类型选项 = ['物理百分比']
        self.防具精通属性 = ['力量']
        self.类型 = '物理百分比'
        self.武器类型 = '臂铠'
        self.防具类型 = '轻甲'
        技能列表 = []
        技能序号 = {}
        i = 0
        while i >= 0:
            try:
                tem = eval('技能'+str(i)+'()')
                tem.基础等级计算()
                技能序号[tem.名称] = i
                技能列表.append(tem)
                i += 1
            except:
                i = -1
        self.技能栏 = 技能列表
        self.技能序号 = 技能序号
        self.buff = 2.08

        super().__init__()
